route.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { NextRequest, NextResponse } from 'next/server'
  2. import { prisma } from '@/lib/prisma'
  3. // POST - Incrementar el secuencial de una configuración tributaria
  4. export async function POST(
  5. request: NextRequest,
  6. { params }: { params: Promise<{ id: string }> }
  7. ) {
  8. try {
  9. const { id } = await params
  10. // Obtener la configuración actual
  11. const configuracion = await prisma.configuracionTributaria.findUnique({
  12. where: { id }
  13. })
  14. if (!configuracion) {
  15. return NextResponse.json(
  16. { error: 'Configuración tributaria no encontrada' },
  17. { status: 404 }
  18. )
  19. }
  20. // Convertir el secuencial actual a número, incrementarlo y volver a convertir a string con padding
  21. const secuencialActual = parseInt(configuracion.secuencial, 10)
  22. const nuevoSecuencial = (secuencialActual + 1).toString().padStart(9, '0')
  23. // Actualizar el secuencial
  24. const configuracionActualizada = await prisma.configuracionTributaria.update({
  25. where: { id },
  26. data: { secuencial: nuevoSecuencial }
  27. })
  28. return NextResponse.json({
  29. mensaje: 'Secuencial incrementado correctamente',
  30. secuencialAnterior: configuracion.secuencial,
  31. nuevoSecuencial: nuevoSecuencial,
  32. configuracion: configuracionActualizada
  33. })
  34. } catch (error) {
  35. console.error('Error al incrementar secuencial:', error)
  36. return NextResponse.json(
  37. { error: 'Error al incrementar secuencial' },
  38. { status: 500 }
  39. )
  40. }
  41. }